package org.qiyu.live.im.core.server.Servicer;

import org.qiyu.live.im.dto.ImMsgBody;

/**
 * @Description: //todo
 * @Author: 张广焱
 * @Date: 2023-12-11 18:17
 */
public interface ImMsgAckCheckServicer {
    /**
     * @Description: 主要是客户端发送ack包给到服务端后,调用进行ack记录的移除
     * @Param: @param imMsgBody
     * @Author: 张广焱
     * @Date: 2023-12-11  18:18:09
     */
    void doMsgAck(ImMsgBody imMsgBody);

    /**
     * @param times
     * @Description: 记录下消息的ack和times
     * @Param: @param imMsgBody
     * @Author: 张广焱
     * @Date: 2023-12-11  18:49:18
     */
    void recordMsgAck(ImMsgBody imMsgBody,int times);

    /**
     * @Description: 发送延迟消息 用于进行消息重试
     * @Param: @param imMsgBody
     * @Author: 张广焱
     * @Date: 2023-12-11  18:49:48
     */
    void sendDelayMsg(ImMsgBody imMsgBody);

    /**
     * @param userId
     * @param appId
     * @Description: 获取ack消息的重试次数
     * @Param: @param msgId
     * @Author: 张广焱
     * @Date: 2023-12-11  18:51:28
     */
    int getMsgAckTimes(String msgId,long userId,int appId);
}
